import { getToken, setToken } from '@/libs/util';
/*
* 通用fetch请求网络接口
* */
export function request(url,opts,acceptType="json"){
    let params = {
        accept:"text/html;charset=utf-8",
        headers: {
            'content-type': 'application/json;charset=UTF-8',
            'Authorization': 'Bearer '+getToken()
        },
        method: "POST",
        body: JSON.stringify(opts)
    };
    return fetch(url,params).then((response)=>{
        // 第一次加载资源会返回200，资源会在浏览器的缓存中被标记max-age，304表示
        if(response.ok || response.status === "304") {
            if(acceptType === "text"){
                return Promise.resolve(response.text());
            }else{
                return Promise.resolve(response.json());
            }
        }else{
            return Promise.reject({code:-1, msg:"服务器出错, 请尝试刷新页面！"});
        }
    }).then((data)=>{
        if(data.code == 403){
            setToken("");
        }
        return data;
    }).catch((error)=>{
        return error;
    });
};
